#include<iostream>
#include<jsoncpp/json/writer.h>
#include<jsoncpp/json/value.h>
#include<jsoncpp/json/reader.h>
#include<memory>
using namespace std;


//发送数据
// int main()
// {
//     const char* name = "小明";
//     int age = 19;
//     float score[3] = {88.5, 99, 58};
//     Json::Value val;
//     val["姓名"] = name;
//     val["年龄"] = age;
//     val["成绩"].append(score[0]);
//     val["成绩"].append(score[1]);
//     val["成绩"].append(score[2]);

//     Json::StreamWriterBuilder swb;
//     std::unique_ptr<Json::StreamWriter> sw(swb.newStreamWriter());
//     std::ostringstream os;
//     sw->write(val, &os);
//     std::string str = os.str();
//     std::cout<<str<<std::endl;

//     return 0;
// }



//接收数据来转义
int main()
{
    string str = R"({"姓名":"小明","年龄":18, "成绩":[76.6, 88, 100]})";
    Json::Value root;
    Json::CharReaderBuilder crb;
    std::unique_ptr<Json::CharReader> cr(crb.newCharReader());

    string err;
    cr->parse(str.c_str(), str.c_str()+str.size(), &root, &err);

    cout<<root["姓名"].asCString()<<endl;
    cout<<root["年龄"].asInt()<<endl;
    int sz = root["成绩"].size();
    for(int i = 0;i<sz;i++)
        cout<<root["成绩"][i].asFloat()<<endl;

    for(auto it = root["成绩"].begin();it!=root["成绩"].end();it++)
        cout<<it->asFloat()<<endl;

    return 0;
}